package demo.day09

// copy函数
fun main() {
    val p = CopyClassTest("Kiki")
    println(p)
    // 使用copy的时候 需要考次构造
    val pNew = p.copy("Qiqi",19)
    println(pNew)
}


data class CopyClassTest(var name: String, var age: Int) {
    var coreInfo: String = ""

    init {
        println("主构造被调用")
    }

    // 次构造
    constructor(name: String) : this(name, 18) {
        println("次构造被调用")
        coreInfo = "核心信息"
    }
    // 默认生成的toString 或者hashCode equals 等等 只管主构造传递的参数
    // 不管次构造
    override fun toString(): String {
        return "toString name:$name,age:$age,coreInfo:$coreInfo"
    }
}

